{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "2b7242af-927f-4c84-afd9-c04eea594b20",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入包\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "1231793f-68c8-4ccb-a8bf-4025b0134ad1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "      <th>Team</th>\n",
       "      <th>NOC</th>\n",
       "      <th>Games</th>\n",
       "      <th>Year</th>\n",
       "      <th>Season</th>\n",
       "      <th>City</th>\n",
       "      <th>Sport</th>\n",
       "      <th>Event</th>\n",
       "      <th>Medal</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>A Dijiang</td>\n",
       "      <td>M</td>\n",
       "      <td>24.0</td>\n",
       "      <td>180.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>China</td>\n",
       "      <td>CHN</td>\n",
       "      <td>1992 Summer</td>\n",
       "      <td>1992</td>\n",
       "      <td>Summer</td>\n",
       "      <td>Barcelona</td>\n",
       "      <td>Basketball</td>\n",
       "      <td>Basketball Men's Basketball</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>A Lamusi</td>\n",
       "      <td>M</td>\n",
       "      <td>23.0</td>\n",
       "      <td>170.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>China</td>\n",
       "      <td>CHN</td>\n",
       "      <td>2012 Summer</td>\n",
       "      <td>2012</td>\n",
       "      <td>Summer</td>\n",
       "      <td>London</td>\n",
       "      <td>Judo</td>\n",
       "      <td>Judo Men's Extra-Lightweight</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Gunnar Nielsen Aaby</td>\n",
       "      <td>M</td>\n",
       "      <td>24.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Denmark</td>\n",
       "      <td>DEN</td>\n",
       "      <td>1920 Summer</td>\n",
       "      <td>1920</td>\n",
       "      <td>Summer</td>\n",
       "      <td>Antwerpen</td>\n",
       "      <td>Football</td>\n",
       "      <td>Football Men's Football</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Edgar Lindenau Aabye</td>\n",
       "      <td>M</td>\n",
       "      <td>34.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Denmark/Sweden</td>\n",
       "      <td>DEN</td>\n",
       "      <td>1900 Summer</td>\n",
       "      <td>1900</td>\n",
       "      <td>Summer</td>\n",
       "      <td>Paris</td>\n",
       "      <td>Tug-Of-War</td>\n",
       "      <td>Tug-Of-War Men's Tug-Of-War</td>\n",
       "      <td>Gold</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>Christine Jacoba Aaftink</td>\n",
       "      <td>F</td>\n",
       "      <td>21.0</td>\n",
       "      <td>185.0</td>\n",
       "      <td>82.0</td>\n",
       "      <td>Netherlands</td>\n",
       "      <td>NED</td>\n",
       "      <td>1988 Winter</td>\n",
       "      <td>1988</td>\n",
       "      <td>Winter</td>\n",
       "      <td>Calgary</td>\n",
       "      <td>Speed Skating</td>\n",
       "      <td>Speed Skating Women's 500 metres</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   ID                      Name Sex   Age  Height  Weight            Team  \\\n",
       "0   1                 A Dijiang   M  24.0   180.0    80.0           China   \n",
       "1   2                  A Lamusi   M  23.0   170.0    60.0           China   \n",
       "2   3       Gunnar Nielsen Aaby   M  24.0     NaN     NaN         Denmark   \n",
       "3   4      Edgar Lindenau Aabye   M  34.0     NaN     NaN  Denmark/Sweden   \n",
       "4   5  Christine Jacoba Aaftink   F  21.0   185.0    82.0     Netherlands   \n",
       "\n",
       "   NOC        Games  Year  Season       City          Sport  \\\n",
       "0  CHN  1992 Summer  1992  Summer  Barcelona     Basketball   \n",
       "1  CHN  2012 Summer  2012  Summer     London           Judo   \n",
       "2  DEN  1920 Summer  1920  Summer  Antwerpen       Football   \n",
       "3  DEN  1900 Summer  1900  Summer      Paris     Tug-Of-War   \n",
       "4  NED  1988 Winter  1988  Winter    Calgary  Speed Skating   \n",
       "\n",
       "                              Event Medal  \n",
       "0       Basketball Men's Basketball   NaN  \n",
       "1      Judo Men's Extra-Lightweight   NaN  \n",
       "2           Football Men's Football   NaN  \n",
       "3       Tug-Of-War Men's Tug-Of-War  Gold  \n",
       "4  Speed Skating Women's 500 metres   NaN  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取数据\n",
    "athletes = pd.read_csv(\"athletesALL.csv\")[:4000]\n",
    "athletes.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "5eb05f8d-b9d1-401b-9168-76767ba17aea",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>180.0</td>\n",
       "      <td>80.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>170.0</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>188.0</td>\n",
       "      <td>75.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Height  Weight\n",
       "0    180.0    80.0\n",
       "1    170.0    60.0\n",
       "2      NaN     NaN\n",
       "3      NaN     NaN\n",
       "10   188.0    75.0"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 提取数据\n",
    "maleAthletes = athletes[athletes[\"Sex\"] == \"M\"][[\"Height\", \"Weight\"]]\n",
    "maleAthletes.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3331a277-4927-4687-8313-8bede87da534",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 设置宽比例\n",
    "widthRatios = (4, 1)\n",
    "# 设置高比例\n",
    "heightRatios = (1, 4)\n",
    "\n",
    "# 创建画板\n",
    "fig = plt.figure(figsize=(8, 8))\n",
    "# 在画板上划分格网：2行2列\n",
    "gs = fig.add_gridspec(2, 2, width_ratios=widthRatios, height_ratios=heightRatios)\n",
    "\n",
    "# 根据格网添加第一张子图\n",
    "    # 位置：第0行0列的格网\n",
    "ax1 = fig.add_subplot(gs[0, 0])\n",
    "# 设置子图数据，绘制直方图\n",
    "ax1.hist(maleAthletes[\"Height\"], bins=20)\n",
    "# 设置子图隐藏x轴的ticklabel\n",
    "ax1.xaxis.set_ticklabels([])\n",
    "\n",
    "# 根据格网添加第二张子图\n",
    "    # 位置：第1行0列的格网\n",
    "ax2 = fig.add_subplot(gs[1, 0])\n",
    "# 设置子图数据，绘制散点图\n",
    "ax2.scatter(\"Height\", \"Weight\", data=maleAthletes)\n",
    "# 设置子图y轴刻度范围\n",
    "ax2.set_yticks(range(0, 160, 20))\n",
    "# 设置子图y轴数据显示范围\n",
    "ax2.set_ylim(0, 140)\n",
    "\n",
    "# 根据格网添加第三张子图\n",
    "    # 位置：第1行1列的格网\n",
    "ax3 = fig.add_subplot(gs[1, 1])\n",
    "# 设置子图数据，绘制直方图，横向绘制\n",
    "ax3.hist(maleAthletes[\"Weight\"], bins=20, orientation=\"horizontal\")\n",
    "# 设置子图隐藏y轴的ticklabel\n",
    "ax3.yaxis.set_ticklabels([])\n",
    "# 设置子图y轴刻度范围\n",
    "ax3.set_yticks(range(0, 160, 20))\n",
    "# 设置子图y轴数据显示范围\n",
    "ax3.set_ylim(0, 140)\n",
    "\n",
    "# 重构子图布局\n",
    "fig.tight_layout(w_pad=0.5, h_pad=0)\n",
    "# 完成绘图\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
